import java.io.File;
import java.nio.file.Files;
import java.nio.files.Paths;
public class Code7{
    public static void main(String[] args) throws Exception {
    // String filePath =
    // "/Users/cc/Desktop/Work/20250224-盐师数统22级校企班/22-salt-teacher-java-course/HomeWork/day15/abc.txt";
    String filePath = "./abc.txt";
    String dirPath = "./dir";
    // 创建文件对象
    File abc = new File(filePath);
    // 创建目录对象
    File dir = new File(dirPath);
    // public String getAbsolutePath();
    // 获取文件绝对路径名的字符串
    String absolutePath = abc.getAbsolutePath();
    System.out.println("absolutePath:" + absolutePath);
    // public String getPath();
    // 获取文件构造路径 创建file对象时传的路径
    String getPath = abc.getPath();
    System.out.println("getPath:" + getPath);
    System.out.println("绝对路径：" + abc.getCanonicalPath());
    // public String getName();
    // 获取文件的文件名（带后缀）
    System.out.println(abc.getName());
    // 获取目录的名
    System.out.println(dir.getName());
    // public long length();
    // 获取文件大小的方法 （不是目录大小）
    System.out.println("文件长度" + abc.length());
    System.out.println("目录长度" + dir.length());// 错误
    // 获取目录大小
    System.out.println("目录大小" + Files.size(Paths.get(dirPath)));// 错误
    // 如何获取一个目录的大小：
    // 思路1：遍历这个目录 求和子文件的大小
    // public boolean exists();
    System.out.println("abc文件是否存在" + abc.exists());
    System.out.println("dir目录是否存在" + dir.exists());
    // public boolean isFile();
    System.out.println("abc是否是文件" + abc.isFile());
    System.out.println("dir是否是文件" + dir.isFile());
    // public boolean isDirectory();
    System.out.println("abc是否是目录" + abc.isDirectory());
    System.out.println("dir是否是目录" + dir.isDirectory());
    // public boolean createNewFile();
    // 当且仅当该名称的文件不存在时，创建一个新的空文件
    // 不会覆盖旧文件 不能创建目录
    File dir1 = new File("./dir1");
    System.out.println("创建文件结果：" + dir1.createNewFile());
    // public boolean mkdir();
    File dir2 = new File("./dir2");
    System.out.println("创建目录结果：" + dir2.mkdir());
    File dir2S = new File("./dir2/dir2-1");
    System.out.println("创建目录结果：" + dir2S.mkdir());
    File dir3 = new File("./dir3/dir3-1");
    System.out.println("创建目录结果：" + dir3.mkdir());
    // public boolean mkdirs();
    // 级联创建多个目录
    File dir4 = new File("./dir4/dir4-1");
    System.out.println("创建目录结果：" + dir4.mkdirs());
    // public boolean delete()
    // 删除文件或者目录 - 不能级联删除
    // dir.delete();
    // System.out.println("删除dir2：" + dir2.delete());
    // dir1.delete();
  }
}